Programmer (hardware)
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
top
In the context of installing firmware onto a device, a programmer, device programmer, chip programmer, device burner,cite-ref-muller-2003-1-0[1] or PROM writercite-ref-cressler-2017-2-0[2] is a device that writes, a.k.a. burns, firmware to a target device's non-volatile memory.cite-ref-czerwinski-2013-3-0[3]
Contents
• Transfer
• Types
• History
• See also
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Connection
Generally, a programmer connects to a device in one of two ways.
Insertion
In some cases, the target device is inserted into a socket (usually ZIF) on the programmer.cite-ref-mazidi-2017-4-0[4] If the device is not a standard DIP packaging, a plug-in adapter board, which converts the footprint with another socket, is used.cite-ref-edward-2006-5-0[5]
Cable & port
In some cases, a programmer connects to a device via a cable to a connection port on the device. This is sometimes called on-board programming, in-circuit programming, or in-system programming.cite-ref-ieee-2532-6-0[6]cite-ref-ieee-1532-by-agilent-7-0[7]cite-ref-jacobson-2012-8-0[8]
Transfer
Data is transferred from the programmer to the device as signals via connecting pins.
Some devices have a serial interfacecite-ref-ong-2001-9-0[9] for receiving data (including JTAG interface).cite-ref-mazidi-2017-4-1[4] Other devices communicate on parallel pins, followed by a programming pulse with a higher voltage for programming the data into the device.cite-ref-ravichandran-2001-10-0[10]
Usually, a programmer is controlled via a connected personal computer through a parallel port,cite-ref-muller-2003-1-1[1] USB port,cite-ref-review-tl866cs-11-0[11] or LAN interface. A program on the controlling computer interacts with the programmer to perform operations such as configure install parameters and program the device,cite-ref-muller-2003-1-2[1] cite-ref-ivf-1995-12-0[12] cite-ref-youtube-howto-13-0[13]cite-ref-minimum-need-to-know-14-0[14]
Types
There are four general types of programmers:
1. Automated programmers often have multiple programming sites/socketscite-ref-gang-by-oxford-dict-15-0[15] for mass production.cite-ref-mazidi-2017-4-2[4] Sometimes used with robotic pick and place handlers with on-board sites to support high volume and complex output such as laser marking, 3D inspection, tape input/output, etc.
2. Development programmers usually have a single programming site; used for first article development and small-series production.cite-ref-minipro-tl866-universal-programmer-review-16-0[16]
History
Regarding old PROM programmers, as the many programmable devices have different voltage requirements, every pin driver must be able to apply different voltages in a range of 0–25 Volts.cite-ref-godse-2008-19-0[19]cite-ref-ball-2002-20-0[20] But according to the progress of memory device technology, recent flash memory programmers do not need high voltages.cite-ref-choi-2009-21-0[21]cite-ref-eetimes-2002-22-0[22]
In the early days of computing, booting mechanism was a mechanical devices usually consisted of switches and LEDs. It means the programmer was not an equipment but a human, who entered machine codes one by one, by setting the switches in a series of "on" and "off" positions. These positions of switches corresponded to the machine codes, similar to today's assembly language.cite-ref-ducastel-2008-23-0[23]cite-ref-pdp8-24-0[24]cite-ref-nova3-25-0[25] Nowadays, EEPROMs are used for bootstrapping mechanism as BIOS, and no need to operate mechanical switches for programming.cite-ref-goel-2010-26-0[26]
Manufacturers
For each vendor's web site, refer to "External links" section.
• Batronix GmbH & Co. KG
• BPM Microsystems
• Conitec Datasystems
• Data I/O Corporation
• DediProg Technology Co., Ltd
• Elnec s.r.o
• Elprosys Sp. z o.o.
• halec
• Hi-Lo System Research
• MCUmall Electronics Inc.
• Minato Holdings
• Phyton, Inc.
• Xeltek Inc.
See also
• Intel HEX – ASCII file format
• SREC – ASCII file format
• ELF – Binary file format
• COFF – Binary file format
References
cite-note-mazidi-2017-44. ↑ citerefmazidinaiminaimi2011Mazidi, Muhammad Ali; Naimi, Sarmad; Naimi, Sepehr (2011). The AVR microcontroller and embedded systems : using Assembly and C (PDF). Upper Saddle River, N.J.: Prentice Hall. ISBN 9780138003319. Archived from the original (PDF) on 2020-02-15. Retrieved 2018-03-16.
cite-note-ieee-1532-by-agilent-77. ↑ "What is the IEEE 1532 Standard?". Keysight Technologies.
cite-note-ong-2001-99. ↑ citerefongpont2001Ong, Royan H. L.; Pont, Michael J. (25 April 2001). "Empirical comparison of software-based error detection and correction techniques for embedded systems". Proceedings of the ninth international symposium on Hardware/Software codesign - CODES '01. ACM. pp. 230–235. CiteSeerX 10.1.1.543.9943. doi:10.1145/371636.371739. ISBN 978-1581133646. S2CID 15929440.
cite-note-review-tl866cs-1111. ↑ "Review: XG autoelectric TL866CS MiniPro Universal USB Programmer". Gough's Tech Zone. 22 April 2016.
cite-note-minimum-need-to-know-1414. ↑ "EPROMS: The minimum you need to know to burn your own". www.classic-computers.org.nz.
cite-note-gang-by-oxford-dict-1515. ↑ "gang | Definition of gang in English by Oxford Dictionaries". Oxford Dictionaries | English. Archived from the original on March 17, 2018.
cite-note-minipro-tl866-universal-programmer-review-1616. ↑ "EEVblog #411 - MiniPro TL866 Universal Programmer Review - Page 1". www.eevblog.com.
cite-note-google-search-field-service-1717. ↑ "EPROM programmer for field service - Google Search". www.google.com.
cite-note-choi-2009-2121. ↑ citerefchoihanjangkim2009Choi, S. J.; Han, J. W.; Jang, M. G.; Kim, J. S.; Kim, K. H.; Lee, G. S.; Oh, J. S.; Song, M. H.; Park, Y. C.; Kim, J. W.; Choi, Y. K. (2009). "High Injection Efficiency and Low-Voltage Programming in a Dopant-Segregated Schottky Barrier (DSSB) FinFET SONOS for nor-type Flash Memory". IEEE Electron Device Letters. 30 (3): 265–268. Bibcode:2009IEDL...30..265C. doi:10.1109/LED.2008.2010720. ISSN 0741-3106.
cite-note-eetimes-2002-2222. ↑ "Remembering the PROM knights of Intel | EE Times". EETimes. 2002-07-03.
cite-note-pdp8-2424. ↑ "Getting Started with Blinking Lights on Old Iron". Hackaday. 10 August 2017.
cite-note-nova3-2525. ↑ citerefgooijenGooijen, Henk. "NOVA 3 console description". www.pdp-11.nl.
External links
• Technical information
• JEDEC - Memory Configurations: JESD21-C
• JEDEC - Common Flash Interface (CFI) Specification, JESD68.01, September 2003.
• Intel - Common Flash Interface (CFI) and Command Sets
• IEEE Std 1532-2002 (Revision of IEEE Std 1532-2001) - IEEE Standard for In-System Configuration of Programmable Devices
• What is the IEEE 1532 Standard? | Keysight Technologies
• JEDEC - STANDARD DATA TRANSFER FORMAT BETWEEN DATA PREPARATION SYSTEM AND PROGRAMMABLE LOGIC DEVICE PROGRAMMER: JESD3-C, Jun 1994
• JEDEC - JC-42 Solid State Memories
• Manufacturers
• Batronix GmbH & Co. KG
• BPM Microsystems
• Conitec Datasystems Inc.
• Data I/O Corporation
• Elnec s.r.o.
• Elprosys Sp. z o.o.
• Dediprog
• halec
• Hi-Lo System Research Co. Ltd.
• MCUmall Electronics Inc.
• Minato Holdings Inc.
• Phyton, Inc.
• Xeltek Inc.
Wikimedia Commons has media related to
Device programmers
.